package com.software.management;
import java.util.ArrayList;
//动态数组，实现List接口
//使用hash表存储元素，自动去重的集合，实现Set接口
//Set接口，里面提供很多方法
import java.util.List;
//List接口


/*Class类就是用来作为management的主体来管理学生和小组的*/
public class Class {
    private int classid;//班级号
    private int stunum;//人数
    private int gronum;//组数
    private List<Student> studentList = new ArrayList<>();//学生列表
    private List<Group> groupList = new ArrayList<>();//小组列表

    public Class(){
        this.stunum=0;
        this.gronum=0;
    }//无参构造方法，初始化人数，便于后期添加小组和学生的时候在此基础上不断添加

    public Class(int studentNumber,int groupNumber, int id) {
        this.stunum = studentNumber;
        this.classid = id;
        this.gronum=groupNumber;
    }//有参构造函数，没有在Run类中使用，无参可以动态地添加学生，而有参要程序员主动添加几个学生，学生数和小组数一多还要数，很麻烦



    //get方法
    public int getClassid() {
        return classid;
    }

    public int getStunum() {
        return stunum;
    }

    public int getGronum() {
        return gronum;
    }


    //返回第ind个student
    public Student getStudent(int ind){
        return studentList.get(ind);
    }

    //添加学生信息，每添加一次，学生数量就++
    public void setStudent(Student stu){
        studentList.add(stu);
        this.stunum++;
    }

    //返回第ind个小组
    public Group getGroup(int ind){
        return groupList.get(ind);
    }

    //添加小组，每添加一次，小组数量就++
    public void setGroupList(Group gro){
        groupList.add(gro);
        this.gronum++;
    }




    //重写toString方法
    @Override
    public String toString() {
        return "Class{" +
                "classid=" + classid +
                ", stunum=" + stunum +
                ", gronum=" + gronum +
                ", students=" + studentList +
                ", group=" + groupList +
                '}';
    }


}
